/**
 * For test - none view
 * 
 * @author Caio Thomas
 */
package view;


import model.constraints.XDFC.XDFC;
import model.validator.ValidateSaxParse;
import model.validator.XDFCValidate;

public class InitialConsole 
{	
	private String filename = "file:///home/caio/Documents/gravadoras.xml";
	
	private String contex = "agenda";
	private String left = "contato / id";
	private String typeLeftPath = "v";
	private String right = "contato";
	private String typeRightPath = "n";
	
	
	/*
	
	//para todo contexto de agenda, um endereco deve ter telefone iguais
	private String contex = "agenda";
	private String left = "contato / endereco / rua | contato / endereco / numero | contato / endereco / estado | contato / endereco / cidade ";
	private String typeLeftPath = "v,v,v,v";
	private String right = "contato / phones / fixo";
	private String typeRightPath = "v";
	*/
	
	/*
	//cada celular so pode ser associado a um endereco 
	private String contex = "agenda";
	private String left = "contato / phones / celular";
	private String typeLeftPath = "v";
	private String right = "contato / endereco";
	private String typeRightPath = "n";
	*/
	
	/*
	private String contex = "agenda";
	private String left = "contato / phones / celular";
	private String typeLeftPath = "v";
	private String right = "contato";
	private String typeRightPath = "n";	
	*/
	
	
	/*
	private String contex = "bd";
	private String left = " projet / fournisseur / composant / cnom | projet / fournisseur / fnom";
	private String typeLeftPath = "v,v";
	private String right = "projet / fournisseur / composant / quantite";
	private String typeRightPath = "v";	
	*/
	
	/*
	private String contex = "bd";
	private String left = " projet / fournisseur / fnom";
	private String typeLeftPath = "v";
	private String right = "projet / fournisseur ";
	private String typeRightPath = "n";
	*/
	
	public InitialConsole(){
		ValidateSaxParse val = new ValidateSaxParse();
		XDFC xdf = new XDFC();
		
		xdf.setNameConstraint("xdf");		
		
		try {
			xdf.setContextFsa("gravadoras");
			xdf.setSourceFsa("gravadora / artista / album / ano | gravadora / pais");
			xdf.setEquality("v,v","l");
			xdf.setTargetFsa("gravadora / artista / album / selo");
			xdf.setEquality("v","r");
			
			System.out.println("Contex Fsa: " + xdf.getContext().toString());				
			System.out.println("Source Fsa: " + xdf.getSourceFsa().toString());
			System.out.println("Target Fsa: " + xdf.getTargetFsa().toString());			

			//xdf.setConditional("contato / id = '123' OR contato / nome = 'julio' OR contato / nome = 'caio'");
			//xdf.setConditional("contatos / contato / nome = 'caio' OR contatos / contato / nome = 'hugo' AND contatos / contato / endereco / rua = 'Rua Alves'");
			//xdf.setConditional("contatos/contato/nome = 'hugo' OR contatos / contato / nome='caio' AND contatos / contato / id!='123'");
			//xdf.setConditional("contatos / contato / telefone = '123' OR contatos / contato / endereco / rua = 'x' AND contatos / contato / nome = 'hugo'");
			xdf.setConditional("gravadora / artista / album / vendas >= '100000' AND gravadora / artista / album / ano >= '2000'");
			System.out.println("Context Fsa: " + xdf.getConditional().toString());

			val.add(new XDFCValidate(xdf));
			val.parse(filename);

		} catch (Exception e) {
			System.err.println("akii error");
			e.printStackTrace();
		}
					
	} 
	 
	public static void main(String[] args){
		new InitialConsole();
	}
}
